<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Class Index extends MY_Controller
{
    public function __construct()
    {
        parent::__construct();
        if(in_array($this->session->userdata('admin_id'), array(null, '', '0')))
        {
            redirect('logout');
        }
        $this->data['controller'] = 'index';
        $this->load->model('Mindex');
    }
    
    public function index()
    {
        $this->data['action'] = 'index';
        $this->load->view('template/layout', $this->data);
    }
    
    
    public function notification()
    {
        $getParam = $this->getParamUriNoSecure(2);
        
        if(in_array($getParam, array(null, '', '0')))
        {
            redirect('login');
        }
        
        $this->data['data'][3] = '';
        $this->data['data'][4] = '';
        $_not_decrypt = 0;
        
        $encrypted_string = base64_decode(str_replace('%3D', '=', $getParam));
        $r = $this->encrypt->decode($encrypted_string, $this->data['key_encrypt']);
        if(in_array($r, array(null, '', '0')))
        {
            $_not_decrypt = 1;
            $r = 'Thông báo|Lỗi <i style="color: red">[201]</i> không xác định, liên hệ lại ngay với kỹ thuật về lỗi này|'.$this->data['baseurl'];
        }
        
        $this->data['data'] = explode('|',$r);//die(print_r($this->data['data'][2]));
        if(in_array(@$this->data['data'][3], array(null, '', '0')) && in_array(@$this->data['data'][4], array(null, '', '0')) && ($_not_decrypt == 0))
        {
            /**
            * 
            * @void Nếu 3 và 4 rỗng => Đã đăng nhập
            * 
            */
            $this->checkAdmin($this->session->userdata('admin_id'), $this->session->userdata('permission_verify'));
            $this->data['action'] = __FUNCTION__;
            $this->load->view('template/layout',$this->data);
        }
        else if(!in_array(@$this->data['data'][4], array(null, '', '0')) && ($_not_decrypt == 0))
        {
            /**
            * 
            * @void Nếu 4 không rỗng => Chưa đăng nhập
            * 
            */
            $encrypted_string = $this->encrypt->encode(@$this->data['data'][4], $this->data['key_encrypt']);//die($this->data['data'][2]);
            $this->data['data'][2] = str_replace('.html', '', @$this->data['data'][2]).'/'.urlencode(base64_encode($encrypted_string)).'.html';
            
            $this->load->view('template/index/notification_',$this->data);
        }
        else{
            /**
             * 
             * @void Các trạng thái còn lại Chưa đăng nhập, thoát....
             * 
             */
            $this->load->view('template/index/notification_',$this->data);
        }
    }
    
    
    public function permission()
    {
        $encrypted_string = base64_decode(str_replace('%3D', '=', $this->getParamUriNoSecure(2)));
        
        $r = $this->encrypt->decode($encrypted_string, $this->data['key_encrypt']);
        
        /**
         * 
         * @void Nếu kết quả giải mã bằng rỗng hoặc kết quả giải mã không bằng với username
         * 
         */
         
        if(in_array($r, array(null, '', '0')) || $r != $this->session->userdata('username'))
        {
            $this->redirect_notification($this->data['page'],array('Thông Báo', '<center><strong>Lỗi <i style="color: red">[202]</i> Vui lòng đăng nhập lại, hoặc liên hệ ngay với kỹ thuật.</strong></center>','not-authentic'),'thong-bao','login');
        }else{
            /**
             * 
             * @void Còn lại đúng thực hiện quá trình xác thực
             * @void quá trình xác nhận và chọn quyền
             * @void Tạo quyền cho admin
             * 
             */
            
            if((!in_array($this->session->userdata('username'), array(null, '', '0'))) && ($this->session->userdata('level') == 1))
            {
                $verify = array('permission_verify' => $r);
                $this->session->set_userdata($verify);
                
                $this->checkAdmin($this->session->userdata('admin_id'), $this->session->userdata('permission_verify'));
               
                $this->session->set_userdata(array('admin' => 1));
                
                redirect('');
            }else if((!in_array($this->session->userdata('username'), array(null, '', '0'))) && (in_array($this->session->userdata('level'), array(2,3)) ))
            {
                /**
                 * 
                 * @void Tạo quyền cho mod
                 * 
                 */
                
                $this->load->library('form_validation');
                $this->form_validation->set_rules('permission', 'Quyền', 'required');
        
                if($this->form_validation->run() === TRUE)
                {
                    $verify = array('permission_verify' => $r);$this->session->set_userdata($verify);
                    $this->checkAdmin($this->session->userdata('admin_id'), $this->session->userdata('permission_verify'));
                    $this->session->set_userdata(array('admin' => 2, 'SessionPermisson' => $this->getParamInt('permission')));
                    redirect('');
                }
            }else{
                $this->redirect_notification($this->data['page'],array('Thông Báo', '<center><strong>Lỗi <i style="color: red">[202]</i> Vui lòng đăng nhập lại, hoặc liên hệ ngay với kỹ thuật.</strong></center>','not-authentic'),'thong-bao','login');
            }
            
            $this->data['selectPer'] = $this->Mindex->selectPer($this->session->userdata('admin_id'));
    
            $this->load->view('template/index/permission', $this->data);
            
        }
    }
    
    public function getpermission()
    {
        $this->load->model('Msystem');
        $this->checkAdmin($this->session->userdata('admin_id'), $this->session->userdata('permission_verify'));
        /*if($this->_per->read != 1 && ($this->session->userdata('admin') != 1))
        {
            $this->redirect_notification($this->data['page'],array('Thông Báo', '<center><strong>Bạn không có quyền này</strong></center>'),'thong-bao', 'index');
            exit();
        }*/
         $id_permission = $this->getParamInt('id_pg');
         $module = $this->getParamInt('module');
         $user = $this->getParamInt('user');
         $this->data['module'] = $this->Msystem->getPerModule($id_permission,$module,$user);
         
         $this->load->view('template/index/getpermission',$this->data);
         
    }
    
    
}
